package com.xique.park.service.service;

import com.xique.common.core.web.domain.AjaxResult;
import com.xique.park.bean.domain.ParkLane;
import com.xique.park.bean.domain.client.ParkClient;
import com.xique.park.bean.request.client.ClientPlateEditRequest;
import com.xique.park.bean.request.client.OpenGateRequest;
import com.xique.park.bean.request.client.ParkClientSelectLaneRequest;
import com.xique.park.bean.vo.client.OpenGateVo;

import java.util.List;

/**
 * 岗亭管理Service接口
 *
 * @author ww
 * @date 2019-10-15
 */
public interface IParkClientService {
    /**
     * 查询岗亭管理
     *
     * @param id 岗亭管理ID
     * @return 岗亭管理
     */
    public ParkClient selectParkClientById(Long id);

    /**
     * 查询岗亭管理列表
     *
     * @param parkClient 岗亭管理
     * @return 岗亭管理集合
     */
    public List<ParkClient> selectParkClientList(ParkClient parkClient);

    /**
     * 新增岗亭管理
     *
     * @param parkClient 岗亭管理
     * @return 结果
     */
    int insertParkClient(ParkClient parkClient);

    /**
     * 修改岗亭管理
     *
     * @param parkClient 岗亭管理
     * @return 结果
     */
    int updateParkClient(ParkClient parkClient);

    /**
     * 批量删除岗亭管理
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteParkClientByIds(String ids);

    /**
     * 删除岗亭管理信息
     *
     * @param id 岗亭管理ID
     * @return 结果
     */
    int deleteParkClientById(Long id);

    /**
     * 查询岗亭通道已分配
     *
     * @param request
     * @return
     */
    List<ParkLane> selectClientLaneAllocatedList(ParkClientSelectLaneRequest request);

    /**
     * 查询岗亭通道未分配
     *
     * @param request
     * @return
     */
    List<ParkLane> selectClientLaneUnAllocatedList(ParkClientSelectLaneRequest request);

    /**
     * 批量绑定
     *
     * @param request
     * @return
     */
    AjaxResult addClientLaneAll(ParkClientSelectLaneRequest request);

    AjaxResult cancelLane(ParkClientSelectLaneRequest request);

    AjaxResult editParkOnPlate(ClientPlateEditRequest request);

    List<OpenGateVo> selectOpenGateRecords(OpenGateRequest request);
}
